Group Predictions

Row

Win percentage for the week

Season Win Percentage

Games Correct

116

Games Picked

178

Number of predictions

59

Row

This Week’s Predictions
Game Prediction Winner Correct Correct Votes Correct Percent
1 Detroit Lions Green Bay Packers No 3 0.0508
2 Dallas Cowboys Dallas Cowboys Yes 57 0.9661
3 San Francisco 49ers San Francisco 49ers Yes 49 0.8305
4 Miami Dolphins Miami Dolphins Yes 56 0.9492
5 Tennessee Titans Tennessee Titans Yes 54 0.9153
6 Jacksonville Jaguars Jacksonville Jaguars Yes 39 0.6610
7 New York Giants New York Giants Yes 35 0.5932
8 New Orleans Saints Atlanta Falcons No 16 0.2712
9 Pittsburgh Steelers Pittsburgh Steelers Yes 41 0.6949
10 Indianapolis Colts Indianapolis Colts Yes 36 0.6102
11 Cleveland Browns Denver Broncos No 24 0.4068
12 Los Angeles Rams Los Angeles Rams Yes 47 0.7966
13 Philadelphia Eagles Philadelphia Eagles Yes 47 0.7966
14 Kansas City Chiefs Kansas City Chiefs Yes 59 1.0000
15 Baltimore Ravens Baltimore Ravens Yes 55 0.9322
16 Minnesota Vikings Chicago Bears No 8 0.1356

Individual Predictions

row

Individual Table

Individual Results
Week 12
Name Weekly # Correct Percent Weeks Picked Season Percent Adj Season Percent Season Trend
Week 1 Week 2 Week 3 Week 4 Week 5 Week 6 Week 7 Week 8 Week 9 Week 10 Week 11 Week 12
George Sweet 9 11 10 12 7 10 10 NA 11 8 10 13 0.8125 11 0.6852 0.6281
Shelly Bailey 9 10 NA 10 8 11 6 NA 13 7 9 13 0.8125 10 0.6486 0.5405
Ramar Williams NA 11 11 9 8 8 6 12 NA 8 NA 13 0.8125 9 0.6418 0.4814
Patrick Tynan 8 8 10 11 7 NA 5 11 10 7 11 13 0.8125 11 0.6196 0.5680
Trevor MACGAVIN 6 10 8 NA 6 7 4 NA 6 6 9 13 0.8125 10 0.5137 0.4281
Stephen Woolwine 8 13 9 NA NA 9 NA 11 11 NA 10 12 0.7500 8 0.6860 0.4573
Justin Crick 11 11 11 13 8 11 4 11 11 8 9 12 0.7500 12 0.6742 0.6742
Antonio Mitchell 10 12 NA 11 10 10 5 12 9 NA 10 12 0.7500 10 0.6733 0.5611
Jason Schattel 7 10 9 11 9 10 3 13 12 9 10 12 0.7500 12 0.6461 0.6461
Montee Brown 7 NA NA 9 9 11 6 12 11 8 10 12 0.7500 10 0.6419 0.5349
Brian Patterson 10 10 8 11 7 11 5 10 10 8 11 12 0.7500 12 0.6348 0.6348
Bradley Hobson 8 10 11 12 8 11 4 NA 8 9 9 12 0.7500 11 0.6296 0.5771
Aubrey Conn 9 12 8 11 9 9 4 11 11 8 7 12 0.7500 12 0.6236 0.6236
Karen Coleman 7 10 NA 10 8 9 4 9 13 11 9 12 0.7500 11 0.6220 0.5702
Eric Hahn 9 13 7 9 8 10 6 9 10 6 11 12 0.7500 12 0.6180 0.6180
Brian Hollmann 8 13 8 9 8 9 6 13 8 8 8 12 0.7500 12 0.6180 0.6180
Cheryl Brown 10 12 11 9 6 9 6 10 8 9 8 12 0.7500 12 0.6180 0.6180
Matthew Schultz 8 NA 10 8 9 9 6 10 11 8 9 12 0.7500 11 0.6173 0.5659
Earl Dixon 9 11 8 12 5 NA 7 8 9 8 9 12 0.7500 11 0.6012 0.5511
DAVID PLATE 8 NA 8 9 8 10 5 9 11 8 9 12 0.7500 11 0.5988 0.5489
Shawn Carden 9 12 6 9 8 9 5 10 9 8 9 12 0.7500 12 0.5955 0.5955
Anthony Bloss 8 10 11 12 10 10 5 9 9 8 9 11 0.6875 12 0.6292 0.6292
Terry Hardison 10 10 9 11 7 9 4 11 9 10 9 11 0.6875 12 0.6180 0.6180
George Mancini 7 12 10 10 9 10 6 NA 7 9 9 11 0.6875 11 0.6173 0.5659
Kevin Green 9 12 9 9 8 9 7 NA NA 6 10 11 0.6875 10 0.6081 0.5068
Walter Archambo 7 10 10 11 7 9 5 9 12 NA 8 11 0.6875 11 0.6037 0.5534
Pamela AUGUSTINE 11 13 6 9 6 9 5 10 9 NA 10 11 0.6875 11 0.6037 0.5534
Anthony Brinson 10 11 8 6 10 9 8 10 9 7 8 11 0.6875 12 0.6011 0.6011
Stephen Bush 7 10 10 9 7 10 6 12 NA 5 10 11 0.6875 11 0.5915 0.5422
Daniel Kuehl 6 10 8 11 7 9 7 12 7 6 10 11 0.6875 12 0.5843 0.5843
Khalil Ibrahim 7 12 9 NA 7 10 6 10 9 5 7 11 0.6875 11 0.5741 0.5263
Steven Curtis NA NA 11 7 8 10 6 7 8 7 7 11 0.6875 10 0.5616 0.4680
William Schouviller 10 9 11 10 8 9 NA 13 10 9 9 10 0.6250 11 0.6545 0.6000
Keithon Corpening 8 NA NA NA NA NA NA 11 12 9 8 10 0.6250 6 0.6444 0.3222
Ryan Wiggins 8 11 11 12 7 11 5 11 10 8 10 10 0.6250 12 0.6404 0.6404
James Tierney 9 10 NA 10 10 12 7 10 8 9 9 10 0.6250 11 0.6341 0.5813
Ryan Cvik 11 11 9 13 6 10 8 8 6 8 10 10 0.6250 12 0.6180 0.6180
Michael Moss 10 NA 11 13 7 9 4 10 9 8 9 10 0.6250 11 0.6173 0.5659
Cody Koerwitz 7 9 11 12 7 10 6 NA 9 9 10 10 0.6250 11 0.6173 0.5659
Paul Shim 10 9 10 11 7 9 4 10 10 8 11 10 0.6250 12 0.6124 0.6124
Bunnaro Sun 9 10 9 8 9 9 6 9 11 8 10 10 0.6250 12 0.6067 0.6067
Robert Gelo 6 9 10 10 9 11 5 11 6 9 9 10 0.6250 12 0.5899 0.5899
Brandon Parks 8 8 NA NA 9 9 5 9 9 9 8 10 0.6250 10 0.5676 0.4730
THOMAS MCCOY 8 10 9 7 8 9 7 11 7 7 NA 10 0.6250 11 0.5671 0.5198
Amy Asberry 8 9 10 9 9 8 5 10 6 9 7 10 0.6250 12 0.5618 0.5618
Sarah Sweet 9 12 12 9 8 NA 6 11 11 10 8 9 0.5625 11 0.6442 0.5905
James Small 8 8 13 9 8 10 8 10 12 6 10 9 0.5625 12 0.6236 0.6236
James Blejski 8 11 10 14 NA 9 7 12 7 6 9 9 0.5625 11 0.6220 0.5702
Daniel Baller 6 12 11 9 8 9 3 10 8 9 10 9 0.5625 12 0.5843 0.5843
Cherylynn Vidal 10 9 9 12 9 7 4 6 9 7 NA 9 0.5625 11 0.5549 0.5087
Robert Martin 10 9 6 NA 9 9 6 9 NA 5 9 9 0.5625 10 0.5473 0.4561
Alexander Santillan 5 NA 8 9 5 11 6 11 8 9 7 9 0.5625 11 0.5432 0.4979
Melissa Printup 8 NA 8 7 10 7 6 NA NA 5 9 9 0.5625 9 0.5227 0.3920
Kevin Kehoe 9 10 11 12 7 8 6 10 7 8 8 8 0.5000 12 0.5843 0.5843
Manuel Vargas 10 9 11 12 7 10 6 12 5 5 7 8 0.5000 12 0.5730 0.5730
Rafael Torres 6 8 12 11 NA NA 6 NA 9 5 10 8 0.5000 9 0.5639 0.4229
Robert Lynch 9 9 6 10 10 6 4 9 10 5 9 8 0.5000 12 0.5337 0.5337
John Plaster 8 12 8 10 NA NA 6 9 7 10 9 7 0.4375 10 0.5772 0.4810
Kristen White 7 13 8 11 6 7 7 10 8 6 10 7 0.4375 12 0.5618 0.5618
Michael Edmunds 10 12 10 10 NA NA NA NA NA NA NA NA 0.0000 4 0.6774 0.2258
Kevin O'NEILL 8 11 11 13 7 NA NA 10 NA NA NA NA 0.0000 6 0.6522 0.3261
Chris Papageorge 11 11 11 10 8 9 5 11 12 8 8 NA 0.0000 11 0.6420 0.5885
Vincent Scannelli 11 11 8 11 7 NA 5 9 12 10 10 NA 0.0000 10 0.6395 0.5329
Gabriel Quinones 9 11 12 12 6 9 6 11 NA 8 9 NA 0.0000 10 0.6284 0.5237
Carlos Caceres 10 NA NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.6250 0.0521
PABLO BURGOSRAMOS 9 11 10 12 7 12 6 8 9 7 10 NA 0.0000 11 0.6235 0.5715
MICHAEL BRANSON 8 11 10 12 9 10 4 11 10 7 8 NA 0.0000 11 0.6173 0.5659
Ronald Schmidt 11 13 11 8 8 11 5 9 8 8 7 NA 0.0000 11 0.6111 0.5602
Donald Park 8 12 7 9 NA NA 6 10 11 NA 9 NA 0.0000 8 0.6050 0.4033
Yiming Hu 9 10 8 12 7 9 6 9 10 8 10 NA 0.0000 11 0.6049 0.5545
Daniel Major 8 13 6 7 8 11 7 11 NA NA 9 NA 0.0000 9 0.5970 0.4478
Paul Presti 9 10 12 9 8 9 5 8 NA 9 9 NA 0.0000 10 0.5946 0.4955
Jonathon Leslein 9 9 9 9 7 11 5 9 8 10 10 NA 0.0000 11 0.5926 0.5432
Charlene Redmer 9 9 NA 9 9 11 NA 10 8 7 8 NA 0.0000 9 0.5926 0.4444
Shaun Dahl 8 8 10 10 7 9 5 13 9 8 NA NA 0.0000 10 0.5878 0.4898
Thomas Brenstuhl 10 NA 8 8 8 9 5 9 11 6 11 NA 0.0000 10 0.5822 0.4852
William Sherman 8 11 10 10 6 NA 5 NA 9 NA 9 NA 0.0000 8 0.5812 0.3875
WAYNE SCHOFIELD 12 9 7 NA 8 NA 5 10 7 NA 10 NA 0.0000 8 0.5812 0.3875
Rahmatullah Sharifi 11 9 8 11 8 8 5 NA NA NA NA NA 0.0000 7 0.5769 0.3365
Daniel Halse 8 9 10 NA NA NA 7 11 NA 7 7 NA 0.0000 7 0.5728 0.3341
Gregory Flint 6 11 NA 11 8 10 NA NA 9 5 8 NA 0.0000 8 0.5714 0.3809
Jamal Willis 8 10 NA NA NA NA NA 9 NA NA NA NA 0.0000 3 0.5625 0.1406
Jason James 9 NA NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.5625 0.0469
Michael Beck 9 NA NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.5625 0.0469
Steven Webster 8 8 6 8 9 8 6 10 10 8 10 NA 0.0000 11 0.5617 0.5149
Justin Thrift 9 8 9 8 9 7 5 11 7 6 10 NA 0.0000 11 0.5494 0.5036
David Spielman 8 NA 11 NA NA NA 3 NA 7 8 9 NA 0.0000 6 0.5412 0.2706
Min Choi 6 7 9 11 7 10 5 13 7 5 NA NA 0.0000 10 0.5405 0.4504
Derrick Zantt 11 6 7 NA 6 9 6 11 NA NA NA NA 0.0000 7 0.5385 0.3141
DERRICK ELAM 6 9 11 10 10 7 NA 5 7 7 6 NA 0.0000 10 0.5235 0.4362
TYREE BUNDY 8 8 NA NA NA NA NA NA NA NA NA NA 0.0000 2 0.5000 0.0833
Ryan Shipley 3 8 7 6 6 7 5 10 9 6 9 NA 0.0000 11 0.4691 0.4300
Edward Ford 6 8 NA NA NA NA NA NA NA NA NA NA 0.0000 2 0.4375 0.0729

Individual Plots

Season Leaderboard

Season Leaderboard (Season Percent)
Week 12
Season Rank Name Donuts Won Weeks Picked Season Percent Adj Season Percent Season Trend
1 Stephen Woolwine 1 8 0.6860 0.4573
2 George Sweet 2 11 0.6852 0.6281
3 Michael Edmunds 0 4 0.6774 0.2258
4 Justin Crick 0 12 0.6742 0.6742
5 Antonio Mitchell 1 10 0.6733 0.5611
6 William Schouviller 1 11 0.6545 0.6000
7 Kevin O'NEILL 0 6 0.6522 0.3261
8 Shelly Bailey 2 10 0.6486 0.5405
9 Jason Schattel 1 12 0.6461 0.6461
10 Keithon Corpening 0 6 0.6444 0.3222
11 Sarah Sweet 0 11 0.6442 0.5905
12 Chris Papageorge 0 11 0.6420 0.5885
13 Montee Brown 0 10 0.6419 0.5349
14 Ramar Williams 1 9 0.6418 0.4814
15 Ryan Wiggins 0 12 0.6404 0.6404
16 Vincent Scannelli 0 10 0.6395 0.5329
17 Brian Patterson 1 12 0.6348 0.6348
18 James Tierney 2 11 0.6341 0.5813
19 Bradley Hobson 0 11 0.6296 0.5771
20 Anthony Bloss 1 12 0.6292 0.6292
21 Gabriel Quinones 0 10 0.6284 0.5237
22 Carlos Caceres 0 1 0.6250 0.0521
23 Aubrey Conn 0 12 0.6236 0.6236
23 James Small 1 12 0.6236 0.6236
25 PABLO BURGOSRAMOS 1 11 0.6235 0.5715
26 James Blejski 1 11 0.6220 0.5702
26 Karen Coleman 2 11 0.6220 0.5702
28 Patrick Tynan 2 11 0.6196 0.5680
29 Brian Hollmann 2 12 0.6180 0.6180
29 Cheryl Brown 0 12 0.6180 0.6180
29 Eric Hahn 2 12 0.6180 0.6180
29 Ryan Cvik 0 12 0.6180 0.6180
29 Terry Hardison 0 12 0.6180 0.6180
34 Cody Koerwitz 0 11 0.6173 0.5659
34 George Mancini 0 11 0.6173 0.5659
34 MICHAEL BRANSON 0 11 0.6173 0.5659
34 Matthew Schultz 0 11 0.6173 0.5659
34 Michael Moss 0 11 0.6173 0.5659
39 Paul Shim 1 12 0.6124 0.6124
40 Ronald Schmidt 1 11 0.6111 0.5602
41 Kevin Green 0 10 0.6081 0.5068
42 Bunnaro Sun 0 12 0.6067 0.6067
43 Donald Park 0 8 0.6050 0.4033
44 Yiming Hu 0 11 0.6049 0.5545
45 Pamela AUGUSTINE 1 11 0.6037 0.5534
45 Walter Archambo 0 11 0.6037 0.5534
47 Earl Dixon 0 11 0.6012 0.5511
48 Anthony Brinson 1 12 0.6011 0.6011
49 DAVID PLATE 0 11 0.5988 0.5489
50 Daniel Major 1 9 0.5970 0.4478
51 Shawn Carden 0 12 0.5955 0.5955
52 Paul Presti 0 10 0.5946 0.4955
53 Charlene Redmer 0 9 0.5926 0.4444
53 Jonathon Leslein 0 11 0.5926 0.5432
55 Stephen Bush 0 11 0.5915 0.5422
56 Robert Gelo 0 12 0.5899 0.5899
57 Shaun Dahl 1 10 0.5878 0.4898
58 Daniel Baller 0 12 0.5843 0.5843
58 Daniel Kuehl 0 12 0.5843 0.5843
58 Kevin Kehoe 0 12 0.5843 0.5843
61 Thomas Brenstuhl 1 10 0.5822 0.4852
62 WAYNE SCHOFIELD 1 8 0.5812 0.3875
62 William Sherman 0 8 0.5812 0.3875
64 John Plaster 0 10 0.5772 0.4810
65 Rahmatullah Sharifi 0 7 0.5769 0.3365
66 Khalil Ibrahim 0 11 0.5741 0.5263
67 Manuel Vargas 0 12 0.5730 0.5730
68 Daniel Halse 0 7 0.5728 0.3341
69 Gregory Flint 0 8 0.5714 0.3809
70 Brandon Parks 0 10 0.5676 0.4730
71 THOMAS MCCOY 0 11 0.5671 0.5198
72 Rafael Torres 0 9 0.5639 0.4229
73 Jamal Willis 0 3 0.5625 0.1406
73 Jason James 0 1 0.5625 0.0469
73 Michael Beck 0 1 0.5625 0.0469
76 Amy Asberry 0 12 0.5618 0.5618
76 Kristen White 1 12 0.5618 0.5618
78 Steven Webster 0 11 0.5617 0.5149
79 Steven Curtis 0 10 0.5616 0.4680
80 Cherylynn Vidal 0 11 0.5549 0.5087
81 Justin Thrift 0 11 0.5494 0.5036
82 Robert Martin 0 10 0.5473 0.4561
83 Alexander Santillan 0 11 0.5432 0.4979
84 David Spielman 0 6 0.5412 0.2706
85 Min Choi 1 10 0.5405 0.4504
86 Derrick Zantt 0 7 0.5385 0.3141
87 Robert Lynch 1 12 0.5337 0.5337
88 DERRICK ELAM 1 10 0.5235 0.4362
89 Melissa Printup 1 9 0.5227 0.3920
90 Trevor MACGAVIN 1 10 0.5137 0.4281
91 TYREE BUNDY 0 2 0.5000 0.0833
92 Ryan Shipley 0 11 0.4691 0.4300
93 Edward Ford 0 2 0.4375 0.0729

Adjusted Season Leaderboard

Season Leaderboard (Adjusted Season Percent)
Week 12
Season Rank Name Donuts Won Weeks Picked Season Percent Adj Season Percent Season Trend
1 Justin Crick 0 12 0.6742 0.6742
2 Jason Schattel 1 12 0.6461 0.6461
3 Ryan Wiggins 0 12 0.6404 0.6404
4 Brian Patterson 1 12 0.6348 0.6348
5 Anthony Bloss 1 12 0.6292 0.6292
6 George Sweet 2 11 0.6852 0.6281
7 Aubrey Conn 0 12 0.6236 0.6236
7 James Small 1 12 0.6236 0.6236
9 Brian Hollmann 2 12 0.6180 0.6180
9 Cheryl Brown 0 12 0.6180 0.6180
9 Eric Hahn 2 12 0.6180 0.6180
9 Ryan Cvik 0 12 0.6180 0.6180
9 Terry Hardison 0 12 0.6180 0.6180
14 Paul Shim 1 12 0.6124 0.6124
15 Bunnaro Sun 0 12 0.6067 0.6067
16 Anthony Brinson 1 12 0.6011 0.6011
17 William Schouviller 1 11 0.6545 0.6000
18 Shawn Carden 0 12 0.5955 0.5955
19 Sarah Sweet 0 11 0.6442 0.5905
20 Robert Gelo 0 12 0.5899 0.5899
21 Chris Papageorge 0 11 0.6420 0.5885
22 Daniel Baller 0 12 0.5843 0.5843
22 Daniel Kuehl 0 12 0.5843 0.5843
22 Kevin Kehoe 0 12 0.5843 0.5843
25 James Tierney 2 11 0.6341 0.5813
26 Bradley Hobson 0 11 0.6296 0.5771
27 Manuel Vargas 0 12 0.5730 0.5730
28 PABLO BURGOSRAMOS 1 11 0.6235 0.5715
29 James Blejski 1 11 0.6220 0.5702
29 Karen Coleman 2 11 0.6220 0.5702
31 Patrick Tynan 2 11 0.6196 0.5680
32 Cody Koerwitz 0 11 0.6173 0.5659
32 George Mancini 0 11 0.6173 0.5659
32 MICHAEL BRANSON 0 11 0.6173 0.5659
32 Matthew Schultz 0 11 0.6173 0.5659
32 Michael Moss 0 11 0.6173 0.5659
37 Amy Asberry 0 12 0.5618 0.5618
37 Kristen White 1 12 0.5618 0.5618
39 Antonio Mitchell 1 10 0.6733 0.5611
40 Ronald Schmidt 1 11 0.6111 0.5602
41 Yiming Hu 0 11 0.6049 0.5545
42 Pamela AUGUSTINE 1 11 0.6037 0.5534
42 Walter Archambo 0 11 0.6037 0.5534
44 Earl Dixon 0 11 0.6012 0.5511
45 DAVID PLATE 0 11 0.5988 0.5489
46 Jonathon Leslein 0 11 0.5926 0.5432
47 Stephen Bush 0 11 0.5915 0.5422
48 Shelly Bailey 2 10 0.6486 0.5405
49 Montee Brown 0 10 0.6419 0.5349
50 Robert Lynch 1 12 0.5337 0.5337
51 Vincent Scannelli 0 10 0.6395 0.5329
52 Khalil Ibrahim 0 11 0.5741 0.5263
53 Gabriel Quinones 0 10 0.6284 0.5237
54 THOMAS MCCOY 0 11 0.5671 0.5198
55 Steven Webster 0 11 0.5617 0.5149
56 Cherylynn Vidal 0 11 0.5549 0.5087
57 Kevin Green 0 10 0.6081 0.5068
58 Justin Thrift 0 11 0.5494 0.5036
59 Alexander Santillan 0 11 0.5432 0.4979
60 Paul Presti 0 10 0.5946 0.4955
61 Shaun Dahl 1 10 0.5878 0.4898
62 Thomas Brenstuhl 1 10 0.5822 0.4852
63 Ramar Williams 1 9 0.6418 0.4814
64 John Plaster 0 10 0.5772 0.4810
65 Brandon Parks 0 10 0.5676 0.4730
66 Steven Curtis 0 10 0.5616 0.4680
67 Stephen Woolwine 1 8 0.6860 0.4573
68 Robert Martin 0 10 0.5473 0.4561
69 Min Choi 1 10 0.5405 0.4504
70 Daniel Major 1 9 0.5970 0.4478
71 Charlene Redmer 0 9 0.5926 0.4444
72 DERRICK ELAM 1 10 0.5235 0.4362
73 Ryan Shipley 0 11 0.4691 0.4300
74 Trevor MACGAVIN 1 10 0.5137 0.4281
75 Rafael Torres 0 9 0.5639 0.4229
76 Donald Park 0 8 0.6050 0.4033
77 Melissa Printup 1 9 0.5227 0.3920
78 WAYNE SCHOFIELD 1 8 0.5812 0.3875
78 William Sherman 0 8 0.5812 0.3875
80 Gregory Flint 0 8 0.5714 0.3809
81 Rahmatullah Sharifi 0 7 0.5769 0.3365
82 Daniel Halse 0 7 0.5728 0.3341
83 Kevin O'NEILL 0 6 0.6522 0.3261
84 Keithon Corpening 0 6 0.6444 0.3222
85 Derrick Zantt 0 7 0.5385 0.3141
86 David Spielman 0 6 0.5412 0.2706
87 Michael Edmunds 0 4 0.6774 0.2258
88 Jamal Willis 0 3 0.5625 0.1406
89 TYREE BUNDY 0 2 0.5000 0.0833
90 Edward Ford 0 2 0.4375 0.0729
91 Carlos Caceres 0 1 0.6250 0.0521
92 Jason James 0 1 0.5625 0.0469
92 Michael Beck 0 1 0.5625 0.0469

Data

---
title: "2023 NFL Moneyline Picks"
output: 
  flexdashboard::flex_dashboard:
    theme:
      version: 4
      bootswatch: spacelab
    orientation: rows
    vertical_layout: fill
    social: ["menu"]
    source_code: embed
    navbar:
      - { title: "Created by: Daniel Baller", icon: "fa-github", href: "https://github.com/danielpballer"  }
---


```{r setup, include=FALSE}
#    source_code: embed
library(flexdashboard)
library(tidyverse)
library(data.table)
library(formattable)
library(ggpubr)
library(ggrepel)
library(gt)
library(glue)
library(ggthemes)
library(hrbrthemes)
library(sparkline)
library(plotly)
library(htmlwidgets)
library(mdthemes)
library(ggtext)
library(ggnewscale)
library(DT)
source("./Functions/functions2.R")

thematic::thematic_rmd(font = "auto")

```

```{r Reading in our picks files, include=FALSE}
current_week = 12 #Set what week it is
week_1 = read_csv("./CSV_Data_Files/2023 NFL Week 1.csv")
week_2 = read_csv("./CSV_Data_Files/2023 NFL Week 2.csv")
week_3 = read_csv("./CSV_Data_Files/2023 NFL Week 3.csv")
week_4 = read_csv("./CSV_Data_Files/2023 NFL Week 4.csv")
week_5 = read_csv("./CSV_Data_Files/2023 NFL Week 5.csv")
week_6 = read_csv("./CSV_Data_Files/2023 NFL Week 6.csv")
week_7 = read_csv("./CSV_Data_Files/2023 NFL Week 7.csv")
week_8 = read_csv("./CSV_Data_Files/2023 NFL Week 8.csv")
week_9 = read_csv("./CSV_Data_Files/2023 NFL Week 9.csv")
week_10 = read_csv("./CSV_Data_Files/2023 NFL Week 10.csv")
week_11 = read_csv("./CSV_Data_Files/2023 NFL Week 11.csv")
week_12 = read_csv("./CSV_Data_Files/2023 NFL Week 12.csv")
# week_13 = read_csv("./CSV_Data_Files/2023 NFL Week 13.csv")
# week_14 = read_csv("./CSV_Data_Files/2023 NFL Week 14.csv")
# week_15 = read_csv("./CSV_Data_Files/2023 NFL Week 15.csv")
# week_16 = read_csv("./CSV_Data_Files/2023 NFL Week 16.csv")
# week_17 = read_csv("./CSV_Data_Files/2023 NFL Week 17.csv")
# week_18 = read_csv("./CSV_Data_Files/2023 NFL Week 18.csv")
# week_19 = read_csv("./CSV_Data_Files/2023 NFL Wild Card.csv")
# week_20 = read_csv("./CSV_Data_Files/2023 NFL Divisional Round.csv")
# week_21 = read_csv("./CSV_Data_Files/2023 NFL Conference Round.csv")
# week_22 = read_csv("./CSV_Data_Files/2023 NFL Super Bowl.csv")

#reading in scores
Scores = read_csv(glue::glue("./CSV_Data_Files/NFL_Scores_{current_week}.csv")) 

#reading in CBS Prediction Records
cbs = read_csv(glue::glue("./CSV_Data_Files/CBS_Experts_{current_week}.csv")) %>% 
  mutate(Percent = round(Percent,4))
cbs_season = read_csv(glue::glue("./CSV_Data_Files/CBS_Experts_Season_{current_week}.csv"))

#reading in ESPN Prediction Records
espn = read_csv(glue::glue("./CSV_Data_Files/ESPN_Experts_{current_week}.csv"))%>% 
  mutate(Percent = round(Percent,4))
espn_season = read_csv(glue::glue("./CSV_Data_Files/ESPN_Experts_Season_{current_week}.csv"))%>% 
  mutate(Percent = round(Percent,4))

#Odds not working for the 2023 season.  Need to fix scrape code for next year.
#Reading in the moneyline odds for each team and cleaning the team names
# odds_wk1 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_1.csv"))
# odds_wk2 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_2.csv"))
# odds_wk3 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_3.csv"))
# odds_wk4 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_4.csv"))
# odds_wk5 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_5.csv"))
# odds_wk6 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_6.csv"))
# odds_wk7 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_7.csv"))
# odds_wk8 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_8.csv"))
# odds_wk9 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_9.csv"))
# odds_wk10 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_10.csv"))
# odds_wk11 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_11.csv"))
# odds_wk12 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_12.csv"))
# odds_wk13 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_13.csv"))
# odds_wk14 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_14.csv"))
# odds_wk15 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_15.csv"))
# odds_wk16 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_16.csv"))
# odds_wk17 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_17.csv"))
# odds_wk18 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_18.csv"))
# odds_wk19 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_19.csv"))
# odds_wk20 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_20.csv"))
# odds_wk21 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_21.csv"))
# odds_wk22 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_22.csv"))

####################UPDATE THESE###############################
inst.picks = list(week_1, week_2, week_3, week_4, week_5, week_6, week_7, week_8, week_9, week_10, week_11, week_12) #, week_13, week_14, week_15, week_16, week_17, week_18, week_19, week_20, week_21) #add in the additional weeks
# odds = rbind(odds_wk1, odds_wk2, odds_wk3, odds_wk4, odds_wk5, odds_wk6, odds_wk7, odds_wk8,
#              odds_wk9, odds_wk10, odds_wk11, odds_wk12) #add in the additional weeks
####################END OF UPDATE##############################

weeks = as.list(seq(1:current_week)) #creating a list of each week number
```

```{r read in scores clean data, include=FALSE}
#Cleaning Odds Data
# cl_odds = odds_cleaning(odds)

#Cleaning scores data
Scores = cleaning2(Scores)

#creating a list of winners for each week
winners = map(weeks, weekly_winners)

#creating a vector of this weeks winners
this_week = pull(winners[[length(winners)]])  

#Getting the number of games for each week
weekly_number_of_games = map_dbl(weeks, week_number_games)
```

```{r Group Predictions, include=FALSE}
#Creating the list of everyones predictions each week.
games = map(inst.picks, games_fn)

#Creating the prediction table.  
pred_table = map(games, pred_table_fn)

#Adding who won to the predictions
with_winners = map2(pred_table, winners, adding_winners)

#Creating results for each week.
results = map2(with_winners,weekly_number_of_games, results_fn)
```


```{r Displaying Group Results, echo=FALSE}
#Displaying the group results

inst_group_table = results[[length(results)]] %>% gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("This Week's Predictions"),
    #subtitle = md(glue("Week {length(results)}"))
    ) %>% 
   tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(Correct),
      rows = Correct =="No"
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(Correct),
      rows = Correct =="Yes"
    )) %>% 
  tab_options(
    data_row.padding = px(3),
    container.height = "100%"
   )
```

```{r Weekly and season Group Results, include=FALSE}
# Printing the weekly and season win percentage     

#how many games correct, incorrect, and not picked each week
weekly_group_correct = map(results, weekly_group_correct_fn)  

#how many games were picked each week
weekly_games_picked = map2(weekly_group_correct, weekly_number_of_games, weekly_games_picked_fn)

#Calculating the number of correct picks for each week
weekly_group_correct_picks = map(weekly_group_correct, weekly_group_correct_picks_fn)

#Calculating weekly win percentage
weekly_win_percentage = map2(weekly_group_correct_picks, weekly_games_picked, weekly_win_percentage_fn)

#Calculating season win percentage
season_win_percentage = round(sum(unlist(weekly_group_correct_picks))/sum(unlist(weekly_games_picked)),4)

#Calculating number of games picked this season
season_games = sum(unlist(weekly_games_picked))

#calculating season wins
season_wins = sum(unlist(weekly_group_correct_picks))

#calculating the number of people who picked this week
Total = dim(inst.picks[[length(weeks)]])[1]
```

```{r plotting group results, include=FALSE}
#Previous Weeks
group_season_for_plotting = unlist(weekly_win_percentage) %>% as.data.frame() %>% 
  rename(`Win Percentage` = ".") %>% 
  add_column(Week = unlist(weeks))
```

```{r Plotting the group results, echo=FALSE}
inst_group_season_plot = group_season_for_plotting %>% 
ggplot(aes(x = as.factor(Week), y = `Win Percentage`))+
  geom_point()+
  geom_path(aes(x = Week))+
  ylim(c(0, 1)) +
  xlab("NFL Week") + 
  ylab("Correct Percentage")+
  ggtitle("Weekly Group Correct Percentage")+
  theme_classic()+
  theme(plot.title = element_text(hjust = 0.5, size = 18))
```

```{r beating cbs week, include=FALSE}
#Creating a list of correct percentages for each week.
cbs_weekly_percent = map(weeks, cbs_percent)

#Creating a list of how many cbs experts we beat each week.
cbs_experts_beat = map2(cbs_weekly_percent, weekly_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
cbs_experts_total = map(cbs_weekly_percent, experts_tot)
```

```{r beating cbs season, include=FALSE}
#Creating a list of correct percentages for each week.
cbs_season_percent = map(weeks, cbs_season_percent)

#Creating a list of how many cbs experts we beat each week.
cbs_experts_beat_season = map2(cbs_season_percent, season_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
cbs_experts_season_total = map(cbs_season_percent, experts_tot)
```

```{r beating ESPN week, include=FALSE}
#Creating a list of correct percentages for each week.
espn_weekly_percent = map(weeks, espn_percent)

#Creating a list of how many cbs experts we beat each week.
espn_experts_beat = map2(espn_weekly_percent, weekly_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
espn_experts_total = map(espn_weekly_percent, experts_tot)
```

```{r beating ESPN season, include=FALSE}
#Creating a list of correct percentages for each week.
espn_season_percent = map(weeks, espn_season_percent)

#Creating a list of how many cbs experts we beat each week.
espn_experts_beat_season = map2(espn_season_percent, season_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
espn_experts_season_total = map(espn_season_percent, experts_tot)
```

```{r individual results, include=FALSE}
#Creating a list of individual results for each week.
weekly_indiv = pmap(list(inst.picks, winners, weeks), indiv_weekly_pred)

#Combining each week into one dataframe and calculating percentage Correct for this week.  
full_season = weekly_indiv %>% reduce(full_join, by = "Name") %>% 
  mutate(Percent = round(pull(.[,ncol(.)]/weekly_number_of_games[[length(weekly_number_of_games)]]),4)) 

#Creating a dataframe with only the weekly picks
a = full_season %>% select(starts_with("Week"))

#Creating a vector of how many weeks each person picked over the season
tot_week = NULL
help = NULL
for (i in 1:dim(a)[1]){
  for(j in 1:length(a)){
    help[j] = ifelse(is.na(a[i,j])==T,0,1)
    tot_week[i] = sum(help)
  }
}

#Creating a vector of how many games each person picked over the season
tot_picks= NULL
help = NULL
for (i in 1:dim(a)[1]){
  for(j in 1:length(a)){
    help[j] = unlist(weekly_games_picked)[j]*ifelse(is.na(a[i,j])==T,0,1)
    tot_picks[i] = sum(help)
  }
}

#Creatign a vector of how many games each person picked correct over the season
tot_correct = NULL
help = NULL
for (i in 1:dim(a)[1]){
  tot_correct[i] = sum(a[i,], na.rm = T)
}

#adding how many weeks each person picked, season correct percentage, and adjusted season percentag to the data frame and sorting the data
indiv_disp = full_season %>% add_column(`Weeks Picked` = tot_week) %>%
  add_column(tot_correct)%>%
  add_column(tot_picks)%>%
  mutate(`Season Percent` = round(tot_correct/tot_picks,4))%>%
  mutate(`Adj Season Percent` = round(`Season Percent`*(tot_week/length(a)),4)) %>%
  select(-tot_correct, -tot_picks) %>%
  arrange(desc(Percent), desc(`Season Percent`)) %>%
  mutate(Percent = ifelse(is.na(Percent)==T, 0, Percent))
```


```{r individual percentages, include=FALSE}
#Calculating individual percentages for each week.
weekly_indiv_percent = map2(weekly_indiv, as.list(weekly_number_of_games), indiv_percent) %>% reduce(full_join, by = "Name")

weekly_indiv_percent_plot = weekly_indiv_percent %>% 
  pivot_longer(cols = starts_with("Week"), names_to = "Week", values_to = "Percent")%>%
  mutate(Percent = ifelse(is.na(Percent)==T, 0, Percent)) %>% 
  mutate(Week = as.factor(Week))

levels = NULL
for(i in 1:length(weeks)){
  levels[i] = glue("Week {i}")  
}

weekly_indiv_percent_plot = weekly_indiv_percent_plot %>%
  mutate(Week = factor(Week, levels))
```

```{r sparklines, include=FALSE}
#adding sparklines
plot_group = function(name, df){
  plot_object = 
    ggplot(data = df,
           aes(x = as.factor(Week), y=Percent, group = 1))+
    geom_path(size = 7)+
    scale_y_continuous(limits = c(0,1))+
    theme_void()+
    theme(legend.position = "none")
  return(plot_object)
}

sparklines = 
  weekly_indiv_percent_plot %>% 
  group_by(Name) %>% 
  nest() %>% 
  mutate(plot = map2(Name, data, plot_group)) %>% 
  select(-data)
  
indiv_disp_2 = indiv_disp %>% 
  inner_join(sparklines, by = "Name") %>% 
  mutate(`Season Trend` = NA)
```

```{r Printing Individual Table2, echo=FALSE}
# Printing the individual Table
indiv_table = indiv_disp_2 %>% gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("Individual Results"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
   tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(Percent),
      rows = Percent<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(Percent),
      rows = Percent>.5
    )) %>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`>.5
    ))%>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`>.5
    )) %>% 
  tab_options(
    container.width = pct(100),
    data_row.padding = px(1),
    container.height = "100%"
   ) %>%
    tab_spanner(
    label = "Weekly # Correct",
    columns = starts_with(c("Week "))
  ) %>% 
  text_transform(
    locations = cells_body(c(`Season Trend`)),
    fn = function(x){
      map(indiv_disp_2$plot, ggplot_image, height = px(30), aspect_ratio = 4)
                 }) %>%
  cols_hide(c(plot))

indiv_winners = indiv_disp_2 %>% filter(Percent == max(Percent)) %>% select(Name) %>% pull() %>% paste(collapse = ", ")
indiv_season = indiv_disp_2 %>% filter(`Season Percent` == max(`Season Percent`)) %>% select(Name) %>% pull() %>% paste(collapse = ", ")
indiv_season_adj = indiv_disp_2 %>% filter(`Adj Season Percent` == max(`Adj Season Percent`)) %>% select(Name) %>% pull()%>% paste(collapse = ", ")
```

```{r Printing Season Leaderboard, echo=FALSE}
# Printing the Season Leaderboard
  
season_leaderboard = indiv_disp_2 %>% select(Name, starts_with("Week ")) %>% 
  pivot_longer(starts_with("Week"),names_to = "Week", values_to = "Correct") %>% 
  group_by(Week) %>% 
  mutate(Correct = case_when(is.na(Correct)==T~0, 
                             TRUE~Correct)) %>% 
  mutate(Donut = case_when(Correct==max(Correct)~1,
                           TRUE~0))  %>% 
  ungroup() %>% 
  group_by(Name) %>% 
  summarise(`Donuts Won` = sum(Donut)) %>% 
  #mutate(`Donuts Won` = strrep("award,", Donuts)) %>% 
  right_join(.,indiv_disp_2) %>% 
  select(-starts_with("Week "), -Percent) %>% 
  mutate(`Season Rank` = min_rank(desc(`Season Percent`)),.before = Name) %>% 
  arrange(`Season Rank`) %>% 
  gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("Season Leaderboard (Season Percent)"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
  # fmt_icon(
  #   columns = `Donuts Won`,
  #   fill_color = "gold",
  # ) %>%
  tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`>.5
    ))%>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`>.5
    )) %>% 
  tab_options(
    container.width = pct(100),
    data_row.padding = px(1),
    container.height = "100%"
   ) %>%
    tab_spanner(
    label = "Weekly # Correct",
    columns = starts_with(c("Week "))
  ) %>% 
  text_transform(
    locations = cells_body(c(`Season Trend`)),
    fn = function(x){
      map(indiv_disp_2$plot, ggplot_image, height = px(30), aspect_ratio = 4)
                 }) %>%
  cols_hide(columns = c(plot))
```

```{r Printing Adj Season Leaderboard, echo=FALSE}
# Printing the Adj Season Leaderboard
  
adj_season_leaderboard = indiv_disp_2 %>% select(Name, starts_with("Week ")) %>% 
  pivot_longer(starts_with("Week"),names_to = "Week", values_to = "Correct") %>% 
  group_by(Week) %>% 
  mutate(Correct = case_when(is.na(Correct)==T~0, 
                             TRUE~Correct)) %>% 
  mutate(Donut = case_when(Correct==max(Correct)~1,
                           TRUE~0))  %>% 
  ungroup() %>% 
  group_by(Name) %>% 
  summarise(`Donuts Won` = sum(Donut)) %>% 
  #mutate(`Donuts Won` = strrep("award,", Donuts)) %>% 
  right_join(.,indiv_disp_2) %>% 
  select(-starts_with("Week "), -Percent) %>% 
  mutate(`Season Rank` = min_rank(desc(`Adj Season Percent`)),.before = Name) %>% 
  arrange(`Season Rank`) %>% 
  gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("Season Leaderboard (Adjusted Season Percent)"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
  # fmt_icon(
  #   columns = `Donuts Won`,
  #   fill_color = "gold",
  # ) %>%
  tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`>.5
    ))%>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`>.5
    )) %>% 
  tab_options(
    container.width = pct(100),
    data_row.padding = px(1),
    container.height = "100%"
   ) %>%
    tab_spanner(
    label = "Weekly # Correct",
    columns = starts_with(c("Week "))
  ) %>% 
  text_transform(
    locations = cells_body(c(`Season Trend`)),
    fn = function(x){
      map(indiv_disp_2$plot, ggplot_image, height = px(30), aspect_ratio = 4)
                 }) %>%
  cols_hide(columns = c(plot))

```


```{r instructor formattable, echo=FALSE}
improvement_formatter <- 
  formatter("span", 
            style = x ~ formattable::style(
              font.weight = "bold", 
              color = ifelse(x > .5, "green", ifelse(x < .5, "red", "black"))),
             x ~ icontext(ifelse(x == max(x), "star", ""), x))

indiv_disp_3 = indiv_disp_2 %>% select(-plot)
indiv_disp_3$`Season Trend` = apply(indiv_disp_3[,2:(1+length(weeks))], 1, FUN = function(x) as.character(htmltools::as.tags(sparkline(as.numeric(x), type = "line", chartRangeMin = 0, chartRangeMax = 1, fillColor = "white"))))

indiv_table_2 = as.htmlwidget(formattable(indiv_disp_3, 
                                align = c("l", rep("c", NROW(indiv_disp_3)-1)),
              list(`Season Percent` = color_bar("#FA614B"),
              `Season Percent`= improvement_formatter,
              `Adj Season Percent`= improvement_formatter)))
              
indiv_table_2$dependencies = c(indiv_table_2$dependencies, htmlwidgets:::widget_dependencies("sparkline", "sparkline"))
```

```{r Plotting individual results over the season2, echo=FALSE, out.width = "100%"}
#Creating the individual plot.  
inst_indiv_plots = weekly_indiv_percent_plot %>% 
  ggplot(aes(x = factor(Week), y = Percent, color = Name))+
  geom_point()+
  geom_path(aes(x = as.factor(Week), y = Percent, color = Name, 
                group = Name))+
  ylim(c(0, 1)) +
  labs(x = "NFL Week", 
       y = "Correct Percentage", 
       title = "Weekly Individual Correct Percentage")+
  facet_wrap(~Name)+
  theme_classic()+
  theme(legend.position = "none",
        plot.title = element_text(hjust = 0.5, size = 18),
        axis.text.x=element_text(angle =45, vjust = 1, hjust = 1))
```

```{r data for data page}
inst.data = map2(inst.picks, weeks, disp_data) %>% bind_rows()
```


```{r fivethirtyeight}
inst_538 = map(results, five38) %>% unlist() %>% sum()
```

```{r pregame, eval=FALSE, include=FALSE}
#Predictions for the week

#Creating the list of group predictions each week.
games = map(inst.picks, games_fn)

#Creating the prediction table.  
pred_table = map(games, pred_table_fn)

#Printing table of instructor predictions
pred_table[[length(pred_table)]] %>% mutate(Game = row_number()) %>% 
  rename(`Votes For` = votes_for, `Votes Against` = votes_against) %>% 
  gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("This Week's Predictions"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
   tab_options(
    data_row.padding = px(3)
   )
```

Group Predictions
==========================================================================

Sidebar {.sidebar} 
-------------------------------------
#### CBS Sports

<font size="4">

This week we beat or tied `r cbs_experts_beat[[length(weeks)]]` of `r cbs_experts_total[[length(weeks)]]` CBS Sports' Experts.

For the season we are currently beating or tied with `r cbs_experts_beat_season[[length(weeks)]]` of `r cbs_experts_season_total[[length(weeks)]]` CBS Sports' Experts.
 
 </font>


#### ESPN

<font size="4">

We also beat or tied `r espn_experts_beat[[length(weeks)]]` of `r espn_experts_total[[length(weeks)]]` ESPN Experts.
 
For the season we are currently beating or tied with `r espn_experts_beat_season[[length(weeks)]]` of `r espn_experts_season_total[[length(weeks)]]` ESPN Experts.

</font>

Row
--------------------------------------

### Win percentage for the week

```{r}
inst_rate <- weekly_win_percentage[[length(weekly_win_percentage)]]*100
gauge(inst_rate, min = 0, max = 100, symbol = '%', gaugeSectors(
  success = c(55, 100), warning = c(40, 54), danger = c(0, 39)
))
```

### Season Win Percentage

```{r}
inst_season <- season_win_percentage*100
gauge(inst_season, min = 0, max = 100, symbol = '%', gaugeSectors(
  success = c(55, 100), warning = c(40, 54), danger = c(0, 39)
))
```

### Games Correct
```{r}
valueBox(value = season_wins,icon = "fa-trophy",caption = "Correct Games this Season")
```

### Games Picked
```{r}
valueBox(value = season_games,icon = "fa-clipboard-list",caption = "Games Picked this Season")
```

### Number of predictions
```{r}
valueBox(value = Total,icon = "fa-users",caption = "Predictions this week")
```

Row
--------------------------------------

### 

```{r}
inst_group_table
```

### 

```{r}
ggplotly(inst_group_season_plot) %>% 
  layout(title = list(y = .93, xref = "plot"),
         margin = list(t = 40))
```

Individual Predictions
==========================================================================


Sidebar {.sidebar} 
-------------------------------------

#### Best Picks of the Week.

<font size="4">

 `r indiv_winners`
 
 </font>
 
#### Best Season Correct Percentage
<font size="4">

`r indiv_season`
 
 </font>

#### Best Adjusted Season Correct Percentage
<font size="4">

`r indiv_season_adj`

 * Adjusted season percentage accounts for the number of weeks picked.
 
 </font>

row {.tabset}
--------------------------------------

### Individual Table
```{r}
indiv_table
```

<!--
### Individual Table2

```{r, out.height="100%"}
indiv_table_2
```

-->

### Individual Plots
```{r, out.width="100%"}
ggplotly(inst_indiv_plots)
```

### Season Leaderboard
```{r, out.width="100%"}
season_leaderboard
```

### Adjusted Season Leaderboard
```{r, out.width="100%"}
adj_season_leaderboard
```

Data
==========================================================================

```{r}
datatable(
  inst.data, extensions = 'Buttons', options = list(
    dom = 'Blfrtip',
    buttons = c('copy', 'csv', 'excel', 'pdf', 'print'),
    lengthMenue = list( c(10, 25, 50, 100, -1), c(10, 25, 50, 100, "All") )
  )
)
```